ICTSC2018 本戦 問題解説: 先輩!webサイトにアクセスできません!

問題文

あなたが所属している会社では、社内専用のWebサイトを別のサーバにリプレイスしました。Webサイトの移行はトラブルなく完了しましたが、後輩が担当していたネットワーク部分が上手く動作せず、社内ネットワークからWebサイトへアクセスできません。自分では手に追えなくなった後輩があなたに泣きついてきました。

「Webサイトには 『 http://192.168.15.125 』 でアクセスするんですが、社内ネットワークからアクセスすることが出来なくて……。多分、ルータのNAT周りの設定がおかしいと思うんですがどこを直したらいいんでしょうか……? 先輩助けてください!」

トラブルの原因を突き止めて、サイトが正常に閲覧できるようにしてください。

情報

  • 使用する手元機材 : AR2050V
  • ユーザー : admin
  • パスワード : IWgrk2Dz
  • 社内ネットワーク
  • IPアドレス:DHCPで配布
  • AR2050VのLANポートに接続すると社内ネットワークに入れる
  • Webサーバ
  • 社内ネットワークからWebサーバへアクセスするためのIPアドレス:192.168.15.125
  • なおWebサーバの本来のホストは192.168.15.125ではなく、192.168.15.32である。
  • Webサーバを操作することはできない

問題に関する禁止事項

  • NATルールを変更しない
  • 物理配線を変更しない
  • IPアドレスを変更しない
  • DHCPを変更しない

報告書を書く際の必須事項

  • 追記・修正するためのコンフィグ
  • 『 http://192.168.15.125 』にアクセスした結果

トラブルの概要

双方向NATをするための以下の要素が正しく設定されていないため、参加者PCからWebサーバへアクセスできません。

  • proxy arp の設定が漏れている
  • zone localの内容が間違っている
  • zone globalの内容が間違っている

解説

Webサーバへアクセスできないのは、双方向NATするための条件が揃っていないことが原因です。

双方向NATとは、1台のNATデバイスで「内部の送信元アドレス変換」と「外部の送信元アドレス変換」を同時に行うNATのことです。双方向にアドレスが変換されることから、内部ホストと外部ホストの双方ともお互いのIPアドレスを知ることなく通信することが可能になります。

双方向NATの条件がそろっていないことが原因ということですが、NATの設定から順を追ってみていこうと思います。

NATの確認

まずはNATの設定を確認しましょう。

今回のNAT設定は以下のようになっていました。

nat
rule 10 masq any from private to global with src global.wan.client
rule 20 portfwd any from private to local.lan.server with dst public.wan.server

今回は、スタティックNATで双方向NATを実現しています。

1行ずつ見ていきましょう。

「内⇒外」方向のスタティックNAT

rule 10 masq any from private to global with src global.wan.client

上記の設定は、

  • rule コマンドで masq アクションを指定されているため、「内⇒外」方向へのスタティックNATである。
  • すべてのアプリケーションの送信元エンティティー「from private」で宛先エンティティー「to global」のとき、送信元IPアドレスを「with src global.wan.client」に変換する。

を表します。

次に、このNATに関するエンティティーの内容を確認します。

zone private
network lan
ip subnet 192.168.15.64/26
host client
ip address 192.168.15.70
ip address 192.168.15.71
ip address 192.168.15.72
ip address 192.168.15.73
ip address 192.168.15.74
ip address 192.168.15.75
ip address 192.168.15.76
ip address 192.168.15.77
ip address 192.168.15.78
ip address 192.168.15.79
ip address 192.168.15.80
!
zone global
network wan
ip subnet 192.168.15.0/24
host client
ip address 192.168.15.125

送信元エンティティーである「private」は、ルータのLANポートに接続したときに降ってくるDHCPが指定されています。

宛先エンティティーである「global」は、NATの設定通りであるとすると、送信元IPアドレスを変換するための条件(ネットワーク定義にWebサーバが属するネットワークアドレス、ホスト定義に特定のipアドレス)が設定されているはずですが、でたらめな条件になっていることが分かります。

よって、このゾーン定義の内容を修正する必要があります。

no zone global
zone global
network wan
ip subnet 192.168.15.0/26
host client
ip address 192.168.15.33

送信元ipアドレスを変換するための「with src global.wan.client」は、show runnning-configを確認すると ip route 192.168.15.33/32 eth1 が設定されているので、192.168.15.33 を指定すると良さそうです。

「外⇒内」方向のスタティックNAT

rule 20 portfwd any from private to local.lan.server with dst public.wan.server

上記の設定は、

  • ruleコマンドで portfwd アクションを指定されているため、「外⇒内」方向へのスタティックNATである。
  • すべてのアプリケーションの送信元エンティティー「from private」で宛先エンティティー「to local.lan.server」のとき、宛先IPアドレスを「with dst public.wan.server」に変換する。

を表します。

次に、このNATに関するエンティティーの内容を確認します。

zone local
network lan
ip subnet 192.168.15.0/24
host server
ip address 192.168.15.33
!
zone private
network lan
ip subnet 192.168.15.64/26
host client
ip address 192.168.15.70
ip address 192.168.15.71
ip address 192.168.15.72
ip address 192.168.15.73
ip address 192.168.15.74
ip address 192.168.15.75
ip address 192.168.15.76
ip address 192.168.15.77
ip address 192.168.15.78
ip address 192.168.15.79
ip address 192.168.15.80
!
zone public
network wan
ip subnet 192.168.15.0/26
host server
ip address 192.168.15.32
!

送信元エンティティーである「private」は、1行目のNATのときと同じなので割愛します。

宛先エンティティーである「local.lan.server」は、問題文に書かれていた、社内ネットワークからWebサーバにアクセスするときのIPアドレス192.168.15.125 が当てはまるはずですが、1行目のNATと同様に、ネットワーク定義もホスト定義もでたらめになっています。

よってこのゾーン定義を修正する必要があります。

no zone local
zone local
network lan
ip subnet 192.168.15.64/26
host server
ip address 192.168.15.125

宛先ipアドレスを変換するための「with dst public.wan.server」は、Webサーバの本来のipアドレスが指定されているので、修正する必要はありません。

代理応答機能を追加する

Firewallはすべてのエンティティー間を許可しているので問題ないため、NAT周りはすべて修正出来ました。

双方向NATでは、ルータ本体に設定されていないIPアドレスを使用しています。

よって、そのIPアドレスに対してルータが代理応答する必要があります。

特定のIPアドレス範囲を代理応答させるためには local-proxy-arp コマンドを用いて設定する必要があります。

しかし、show runnning-configを確認した限り、設定されていないようなので、追加設定をしなければなりません。

local-proxy-arp 192.168.15.125/32
local-proxy-arp 192.168.15.33/32

上記の設定を有効にするためには、該当するインターフェースに対してリミテッドローカルプロキシーARPを有効にする必要がありますが、インターフェースvlan43とインターフェースeth1どちらとも有効になっているので、設定する必要はありません。

回答例

!
local-proxy-arp 192.168.15.125/32
local-proxy-arp 192.168.15.33/32
!
no zone global
zone global
network wan
ip subnet 192.168.15.0/26
host client
ip address 192.168.15.33
!
no zone local
zone local
network lan
ip subnet 192.168.15.64/26
host server
ip address 192.168.15.125
!

採点基準

  • proxy arp の設定が正しく追加されている(30%)(計30%)
  • zone global の設定が正しく修正されている(15%)(計45%)
  • zone local の設定が正しく修正されている(15%)(計60%)
  • client から 192.168.15.125 にブラウザからアクセスするとWebページが閲覧できる(40%)(計100%)